/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package environnement.objets;

import environnement.Environnement;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;

/**
 *
 * @author tibox
 */
public class Cercle implements IObjet
{

    /**
     * Absisse du centre
     */
    private int x;
    /**
     * ordonnée du centre
     */
    private int y;
    /**
     * Rayon
     */
    private int iRayon;
    /**
     * couleur de fond
     */
    private int color_bg;
    /**
     * Couleur des bords
     */
    private int color_bords;
    /**
     * Objet cercle
     */
    private Ellipse2D.Double cercle;

    /**
     * Objet Environnement (plateau de jeu)
     */
    private Environnement env;

    /**
     *
     * @param x
     * @param y
     * @param iRayon
     * @param color_bg
     * @param color_bords
     */
    public Cercle(int x, int y, int iRayon, int color_bg, int color_bords)
    {
        this.x = x;
        this.y = y;
        this.iRayon = iRayon;
        this.color_bg = color_bg;
        this.color_bords = color_bords;
        this.env = Environnement.getInstance();
    }

    /**
     * Savoir si un point est dedans ou dehors d'un cercle
     * @param x
     * @param y
     * @return boolean Vrai si dedans sinon faux
     */
    public boolean isIn(int x, int y)
    {
        return this.cercle.contains(this.env.getX() + x,this.env.getY() + y);
    }

    /**
     * Dessine le cercle forme, couleur, bord etc.
     * @param gr
     * @param env
     */
    public void dessiner(Graphics2D gr)
    {
        this.cercle = new Ellipse2D.Double(env.getX() + x, env.getY() + y, iRayon, iRayon);
        gr.setPaint(new Color(this.color_bg));
        gr.fill(this.cercle);
        gr.setPaint(new Color(this.color_bords));
        gr.draw(this.cercle);
    }
}
